package org.example.mylogin.common;

import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
//@RestControllerAdvice 注解在保留原有特性的基础上，提供了新的功能。
//
//@RestControllerAdvice 注解是 Spring 4.0 引入的一个新特性，它主要用于简化异常处理。在 Spring 4.0 之前，我们通常使用 @ControllerAdvice 注解来处理异常。@ControllerAdvice 注解是一个增强型注解，用于简化异常处理。
//
//@RestControllerAdvice 注解继承了 @ControllerAdvice 注解的所有特性，并提供了新的功能。例如，@RestControllerAdvice 注解可以简化异常处理方法的定义，使得我们不需要在每个控制器中重复编写相同的异常处理代码。
//
//总之，@RestControllerAdvice 注解在保留原有特性的基础上，提供了新的功能，使得异常处理更加简洁和易于维护

@RestControllerAdvice
public class BaseController {

    @ExceptionHandler(RuntimeException.class)
    public Result handleRuntimeException(RuntimeException e) {
        // 处理异常逻辑
        return Result.failure(e.getMessage());
    }
}

//@ExceptionHandler 是 Spring 框架中的一个注解，用于定义全局异常处理方法。当程序中出现指定的异常类型时，会自动调用该方法进行异常处理。
//
//@ExceptionHandler 可以用于处理程序中的异常，避免程序因为异常而直接中断。通过使用 @ExceptionHandler，可以将异常处理逻辑从业务逻辑中分离出来，使代码更加清晰和易于维护。